package com.tax.common.tool;

import java.io.File;
import java.util.List;

public interface IToolWrap {
	/**
	 * 计算字符串MD5值
	 * @param str 需要转换的文字
	 * @return MD5密文
	 */
	public String getString2MD5(String str);
	/**
	 * 计算文件MD5值
	 * @param file 所需文件
	 * @return MD5值
	 */
	public String getFile2MD5(File file);
	/**
	 * 将密码生成密钥
	 * @param password 密码
	 * @return 密钥 字符串
	 */
	public String getKey(String password);
	/**
	 * 把账号密码通过密钥加密
	 * @param accountPassword 账号密码
	 * @param key 密钥
	 * @return 密文
	 */
	public String getCiphertext(String accountPassword,String key);
	/**
	 * 将密文解密
	 * @param Ciphertext 密文
	 * @param key        密钥
	 * @return           密码
	 */
	public String deciphering(String Ciphertext,String key);

	/**
	 * 生成缩略图
	 * @param imgPath     要生成缩略图的文件对象
	 * @param scalImgPath 生成的文件缩略图对象
	 * @param width       生成图片的宽
	 * @param height      生成图片的高
	 */
	public void resizeFix(File imgPath,File scalImgPath,int width,int height);
	/**
	 * 位移计算
	 * @param needShifting 需要位移的字符串
	 * @param offset       位移量
	 * @return
	 */
	public String shifting(String needShifting,int offset);
	/**
	 * 复制内容到剪切板中
	 * @param content
	 */
	public void copyToClipboard(String content);
	/**
	 * 从剪切板中得到内容
	 * @return
	 */
	public String getContetFromClipboard();
	/**
	 * 通过ant项目方式进行压缩文件
	 * @param srcPathName 需要压缩文件的路径
	 * @return 返回压缩后文件的路径
	 */
	public String ZipCompressorByAnt(final String srcPathName);
	/**
	 * 通过ant项目方式进行解压文件
	 * @param zipFilePath 需要解压的文件
	 * @param fileSavePath 解压文件保存路径
	 * @param isDelete 是否删除源文件
	 */
	public void unZipByAnt(String zipFilePath, String fileSavePath, boolean isDelete);
	/**
	 * 把字符串转换为Base64
	 * @param str
	 * @return
	 */
	public String strToBase64Str(String str);
	/**
	 * 通过URL及所带参数 向服务器获取所需内容
	 * @param httpUrl
	 * @param httpArg
	 * @return
	 */
	public String  baiduApi(String httpUrl, String httpArg);
	/**
	 * 把json字符串转换成指定的Class对象
	 * @param jsonStr
	 * @param obj
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public Object jsonToObject(String jsonStr,Class obj);
	/**
	 * 获取主机名
	 */
	public String getComputerUserName();
	/**
	 * 
	 * @param addr
	 * @return true 为公网  false 为私网
	 */
	public boolean internalIp(String ip);
	/**
	 * 获取公网IP
	 * @return
	 */
	public String getPublicIp();
	/**
	 * 返回指定 URL 响应报文
	 * @param url
	 * @return
	 */
	public String getUrlResponseTXT(String url);
	/**
	 * 发送邮件
	 * @param toEmailAddr 地址
	 * @param password	  自己邮箱的密码 
	 * @param theme      邮件主题
	 * @param content 	"<a href='http://www.fkjava.org'>测试的HTML邮件</a>"
	 */
	public void sendMail(String toEmailAddr,String password,String theme, String content);
	/**
	 * 获取指定目录下的文件名 并返回其相对路径
	 * 例：D://   -> tomcat.exe   123/abc.txt 123/456/qq.exe
	 * @param dir 要获取的目录
	 * @param enumType 文件类型  movie为电影
	 * @return 数组
	 */
	public List<String> getRelativeFilePath(File dir,String enumType);
}
